package com.mes.cloud.dto;

import com.mes.cloud.util.ExcelAttribute;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * <bme_bc_join基础表>
 *
 * @author xhy
 * @version 1.0
 * @date 2019/05/09 16:00
 */
@ApiModel(value = "BmeBcJoinDTO", description = "BcJoin信息")
@Data
public class BmeBcJoinDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @ApiModelProperty(value = "编号", dataType = "String")
    @ExcelAttribute(name = "编号", column = "A")
    @NotNull
    private String id;
    @ApiModelProperty(value = "启用", dataType = "String")
    @ExcelAttribute(name = "启用", column = "B")
    private Long isEnable;
    /**
     * 状态：0=普通，1=禁用
     */
    @ApiModelProperty(value = "状态", dataType = "String")
    @ExcelAttribute(name = "状态", column = "C")
    @NotNull
    private Long status;
    /**
     * 名称
     */
    @ApiModelProperty(value = "名称", dataType = "String")
    @ExcelAttribute(name = "名称", column = "D")
    @NotNull
    private String name;
    /**
     * 分类
     */
    @ApiModelProperty(value = "分类", dataType = "String")
    @ExcelAttribute(name = "分类", column = "E")
    private String type;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", dataType = "String")
    @ExcelAttribute(name = "备注", column = "F")
    private String ds;
    /**
     * jion方式
     */
    @ApiModelProperty(value = "JOIN方式", dataType = "String")
    @ExcelAttribute(name = "JOIN方式", column = "G")
    @NotNull
    private String joinWay;
    /**
     * 对于的主表名称
     */
    @NotNull
    @ApiModelProperty(value = "主表名称", dataType = "String")
    @ExcelAttribute(name = "主表名称", column = "H")
    private String joinMasterTable;
    /**
     * 对于的主表字段
     */
    @NotNull
    @ApiModelProperty(value = "主表字段", dataType = "String")
    @ExcelAttribute(name = "主表字段", column = "I")
    private String joinMasterField;

    /**
     * 对于的主表别名
     */
    @NotNull
    @ApiModelProperty(value = "对于的主表别名", dataType = "String")
    private String joinMasterAlias;

    /**
     * 从表名称
     */
    @NotNull
    @ApiModelProperty(value = "从表名称", dataType = "String")
    @ExcelAttribute(name = "从表名称", column = "J")
    private String joinSlaveTable;
    /**
     * 从表字段名称
     */
    @NotNull
    @ApiModelProperty(value = "从表字段名称", dataType = "String")
    @ExcelAttribute(name = "从表字段名称", column = "K")
    private String joinSlaveField;

    /**
     * 从表别名
     */
    @NotNull
    @ApiModelProperty(value = "从表别名", dataType = "String")
    private String joinSlaveAlias;

    /**
     * 从表数据源
     */
    @NotNull
    @ApiModelProperty(value = "从表数据源", dataType = "String")
    private String datasource;


    /**
     * 关联条件
     */
    @NotNull
    @ApiModelProperty(value = "关联条件", dataType = "String")
    private String joinCondition;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序", dataType = "String")
    @NotNull
    private Long sort;

    /**
     * 父编号
     */
    @ApiModelProperty(value = "父编号", dataType = "String")
    @ExcelAttribute(name = "父编号", column = "O")
    private String pid;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人", dataType = "String")
    @ExcelAttribute(name = "创建人", column = "P")
    private String crtby;
    /**
     * 创时间
     */
    @ApiModelProperty(value = "创建时间", dataType = "String")
    @ExcelAttribute(name = "创建时间", column = "Q")
    private Timestamp crtdate;
    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人", dataType = "String")
    @ExcelAttribute(name = "修改人", column = "R")
    private String updby;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间", dataType = "String")
    @ExcelAttribute(name = "修改时间", column = "S")
    private Timestamp upddate;

    @ApiModelProperty(value = "JOIN示例", dataType = "String")
    @ExcelAttribute(name = "JOIN示例", column = "T")
    private String example;

}
